'''
抓取豆瓣电影数据——全站抓取
'''

import requests
import json
import time
import random
from fake_useragent import  UserAgent
import re


class DoubanSpider:
   def __init__(self):
       '''
       请求的地址不能按照地址栏的d
       '''
       self.url="https://movie.douban.com/j/chart/top_list?type={}&interval_id=100%3A90&action=&start={}&limit=20"

    def get_thml(self,url):
        '''功能函数1：获取html'''
        headers = {"User-Agent":UserAgent().random}
        '''
        get和post请求的区别：get请求参数都显示在地址上，post请求需要封装
       html:json类型的字符串
        '''
        html = requests.get(url=self.url, headers = headers).text
        return html

    def parse_html(self,url):
        '''功能函数2：提取数据'''
        #将json类型的字符串转换成python类型
        html = json.load(self.get_thml(url=url))
        #html是一个列表
        #列表中每一个字典就是一部电影的数据

        for one_file_dict in html:
            item = {}
            item['rank'] = one_file_dict['rank']
            item['title']= one_file_dict['title']
            item['release_date'] = one_file_dict['release_date']
            item['score'] = one_file_dict['score']

            print(item)

    def get_total(self,type):
        '''获取电影总数'''
        total_url ="https://movie.douban.com/j/chart/top_list_count?type=11&interval_id=95%3A85"
        total_html= json.load(self.get_thml(url=total_url))
        return total_html['total']
